package edu.sjtu.erplab.cm.webservice.interfaces;

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

import edu.sjtu.erplab.cm.business.bean.JpdlAndComponentXmlVB;
import edu.sjtu.erplab.cm.dao.bean.CollaborativeModule;

@WebService
public interface ICollaborativeModuleWebService {

	@WebMethod(operationName = "createOneCollaborativeModuleWith7Params")
	public String createOneCollaborativeModuleWith7Params(
			@WebParam(name = "id") String id,
			@WebParam(name = "businessType") String businessType,
			@WebParam(name = "updateType") String updateType,
			@WebParam(name = "processKey") String processKey,
			@WebParam(name = "jpdlXml") String jpdlXml,
			@WebParam(name = "componentsXml") String componentsXml,
			@WebParam(name = "originalJpdl") String originalJpdl);

	@WebMethod(operationName = "createSystemRecordByTemplateId")
	public String createSystemRecordByTemplateId(
			@WebParam(name = "id") String templateId,
			@WebParam(name = "updateType") String systemId);

	@WebMethod(operationName = "updateCollaborativeModuleBy2Params")
	public String updateCollaborativeModuleBy2Params(
			@WebParam(name = "id") String id,
			@WebParam(name = "updateType") String updateType,
			@WebParam(name = "processKey") String processKey,
			@WebParam(name = "jpdlXml") String jpdlXml,
			@WebParam(name = "componentsXml") String componentsXml,
			@WebParam(name = "originalJpdl") String originalJpdl);

	@WebMethod(operationName = "updateThreeFilesBy2Params")
	public String updateThreeFilesBy2Params(@WebParam(name = "id") String id,
			@WebParam(name = "updateType") String updateType,
			@WebParam(name = "changeXML") String changeXML);

	@WebMethod(operationName = "findOriginalJpdlBy2Params")
	public String findOriginalJpdlBy2Params(@WebParam(name = "id") String id,
			@WebParam(name = "updateType") String updateType);

	@WebMethod(operationName = "findJpdlAndComponentXmlByProcessKey")
	public JpdlAndComponentXmlVB findJpdlAndComponentXmlByProcessKey(
			@WebParam(name = "processKey") String processKey);

	@WebMethod(operationName = "findCollaborativeModuleBy2Params")
	public CollaborativeModule findCollaborativeModuleBy2Params(
			@WebParam(name = "id") String id,
			@WebParam(name = "updateType") String updateType);

	@WebMethod(operationName = "findAllCollaborativeModule")
	public List<CollaborativeModule> findAllCollaborativeModule();

	@WebMethod(operationName = "deleteCollaborativeModuleBy2Params")
	public String deleteCollaborativeModuleBy2Params(
			@WebParam(name = "id") String id,
			@WebParam(name = "updateType") String updateType);

	// //////////////////////////////////////////////////////////////////////////////////////

	/*
	 * @WebMethod(operationName = "createOneCollaborativeModuleWith3Params")
	 * public String createOneCollaborativeModuleWith3Params(
	 * 
	 * @WebParam(name = "templateId") String templateId,
	 * 
	 * @WebParam(name = "businessType") String businessType,
	 * 
	 * @WebParam(name = "updateType") String updateType);
	 * 
	 * @WebMethod(operationName = "updateCollaborativeModuleByTemplateId")
	 * public String updateCollaborativeModuleByTemplateId(
	 * 
	 * @WebParam(name = "templateId") String templateId,
	 * 
	 * @WebParam(name = "processKey") String processKey,
	 * 
	 * @WebParam(name = "jpdlXml") String jpdlXml,
	 * 
	 * @WebParam(name = "componentsXml") String componentsXml,
	 * 
	 * @WebParam(name = "originalJpdl") String originalJpdl);
	 * 
	 * @WebMethod(operationName = "updateCollaborativeModuleBy3Params") public
	 * String updateCollaborativeModuleBy3Params(
	 * 
	 * @WebParam(name = "templateId") String templateId,
	 * 
	 * @WebParam(name = "businessType") String businessType,
	 * 
	 * @WebParam(name = "updateType") String updateType,
	 * 
	 * @WebParam(name = "processKey") String processKey,
	 * 
	 * @WebParam(name = "jpdlXml") String jpdlXml,
	 * 
	 * @WebParam(name = "componentsXml") String componentsXml,
	 * 
	 * @WebParam(name = "originalJpdl") String originalJpdl);
	 * 
	 * @WebMethod(operationName = "findOriginalJpdlByTemplateId") public String
	 * findOriginalJpdlByTemplateId(
	 * 
	 * @WebParam(name = "templateId") String templateId);
	 * 
	 * @WebMethod(operationName = "findCollaborativeModuleByTemplateId") public
	 * CollaborativeModule findCollaborativeModuleByTemplateId(
	 * 
	 * @WebParam(name = "templateId") String templateId);
	 */

}
